#pragma once

#include <boost/signal.hpp>

#include "../../domain/models/CardSet.h"
#include "../../domain/models/CardsCollection.h"
#include "../../domain/models/Player.h"

namespace Views {

	class IDeductionView
	{
	public:
		boost::signal<void (Cards::PlayerCard*, Cards::WeaponCard*)> onSearchedCardsPick;
		boost::signal<void (Cards::Card*)> onDeductedCardPick;

		virtual void openPickSearchedCardsDialog(Players::Player* player, Cards::PlayersCards players_cards,
			Cards::WeaponsCards weapons_cards) = 0;
		virtual void openPickCardDialog(Players::Player*, Cards::CardSet&) = 0;
		virtual void showDeductedCard(Cards::Card* card, Players::Player* player) = 0;
		virtual void showNoCardsDeducted(Cards::CardSet& cards) = 0;
	};

}

